home *** CD-ROM | disk | FTP | other *** search
-
- ProKit Door Writing Tips (C) 1988 S.H.Smith
- ------------------------ ProKit 2.8, 8/4/88
-
- + Do all output with DISP, DISPLN and NEWLINE functions.
-
- + Do NOT use Borland's CRT unit. The CRT unit will lock up in some
- multi-task systems, and does not communicate.
-
- + Use one of the provided input functions to read from the user
- GET_CMDLINE - for command lines
- INPUT - for lines with length limits
- GET_KEY - for single characters (no echo)
-
- + Use the supplied functions to select one of the seven basic colors
- aRED, aGREEN, aBLUE, aCYAN, aMAGENTA, aWHITE, aGRAY.
- These can be used at any time (even in non-graphic mode).
-
- + Use these functions ONLY when in GRAPHICS mode:
- POSITION(x,y);
- CLEAR_SCREEN;
- CLEAR_EOL;
-
- + Check the GRAPHICS flag before sending any ANSI codes to the user;
- some users won't accept ansi codes.
-
- + Check the DUMP_USER flag in all major program loops. This flag is set
- if the user hangs up, his time runs out, or if the sysop wants to dump
- the caller out of the door.
-
- + Always call UNINIT before calling HALT to terminate a door program.
- Otherwise the dangling interrupt handlers will crash the system.
-
- + The first line of a ProKit config files must be the com driver type.
- This can be one of:
- INTERRUPT ;the best, fastest
- BIOS ;if interrupts fail to work
- PCBTRAP ;BIOS with special screen management for PCBTRAP.
- Your door program is free to re-open the config file and read additional
- information from it.
-
- + ProKit based doors can be tested with a special "local sysop" mode of
- operation. In this mode, you need not load PCBoard to run the door.
- This option is selected by adding 'LOCAL' to the end of the door
- command line. For example:
- prokit prokit.cnf \pcb2 LOCAL
- will run the ProKit demo door in sysop-local mode directly from DOS.
-
- + The standard DOOR script for ProKit doors has this format:
- echo off
- cd \pro
- prokit prokit.cnf c:\pcb2
- cd \pcb2
- if exist event.bat event <<<--- take note
- board
- Notice line 5. This line will start your timed event if needed. Any
- door that can logoff a user (during carrier loss or with goodbye) has
- the possibility of starting the event.
-
- + The F5 (shell to DOS) function will only work if you leave enough
- free ram for a new copy of COMMAND.COM to be loaded. To do this, you
- need to include this directive in your main program:
- {$M 12000,40000,40000} {Stack, minheap, maxheap}
- Adjust the values to your needs, but limit the MAXHEAP setting to the
- smallest value that is needed. This leaves the rest of memory available
- for the shell.
-
- + Take a look at the sample door - PROKIT.PAS - it has examples of how
- to use many of ProKit's features.
-
- + Call the function load_cnames_file during your door initialization if
- you are going to access the conf_info data structure. This is no
- longer automatically loaded, speeding up doors that have no interest
- in this data.
-
- + The new pdisp and pdispln procedures allow "macros" to be expanded.
- Here is a list of the macros that are available:
-
- These are used mostly in protocol definitions:
- $C$ ;actual connect bps
- $B$ ;modem open baud rate
- $N$ ;port number 0=local, 1..8
- $R$ ;result filename for batches
- $@$ ;file list pathname for dsz
- $SCRATCH$ ;scratch file name
- $MAIL$ ;mail file name
- $PLAY$ ;upload playpen directory
-
- These are used internally and by PROTRNS translations:
- $2$ ;temp- par2
- $3$ ;temp- par3
- $4$ ;temp- par4
- $5W$ ;temp- par5 word
- $6W$ ;temp- par6 word
- $7L$ ;temp- par7 longint
- $8S$ ;temp- par8 single
-
- These are also unique to ProDoor:
- $nomacs$ ;suspend/toggle macro processing for rest of current file
- $FIRST$ ;callers first name
- $SYSOP$ ;sysop name
- $NAME$ ;callers full name
- $CONF$ ;conference number with mail waiting
- $TIME$ ;minutes left
- $NODE$ ;current node number
- $CONFNUM$ ;current conference number
- $LASTMSGNO$ ;high message number
- $MSGCOUNT$ ;active message count
- $DISP-fname$ ;display text file
- $IFMEMBER-nnn$ ;check conference membership
- $YES$
- $NO$
- $RED$ ;standard ansi colors
- $GREEN$
- $YELLOW$
- $BLUE$
- $MAGENTA$
- $CYAN$
- $WHITE$
- $GRAY$
- $DEFAULT$ ;default color according to pcbsetup
- $CLREOL$ ;clear to end of line
- $NONSTOP$ ;disable "More" prompt
- @CLS@ ;clear screen
- @MORE@ ;cancel nonstop and ask "More?"
-
- These where added for PCBoard 14.2 compatibility:
- @BOARDNAME@ ;the name of your BBS
- @BYTELIMIT@ ;bytes allowed from PWRD file
- @BYTESLEFT@ ;remaining bytes available for download for that day
- @CITY@ ;city and state of caller (all caps)
- @DATAPHONE@ ;caller's business/data phone number
- @DAYBYTES@ ;bytes downloaded so far that day
- @DLBYTES@ ;total bytes downloaded - all calls
- @DLFILES@ ;total files downloaded - all calls
- @EXPDATE@ ;subscription expiration date
- @FIRST@ ;first name of the user (first letter captialized)
- @HOMEPHONE@ ;caller voice phone number
- @INCONF@ ;conference the caller is currently in
- @LASTDATEON@ ;last date on (mm-dd-yy format)
- @LASTTIMEON@ ;last time on (hh:mm format)
- @NUMCALLS@ ;total number of callers in system
- @NUMTIMESON@ ;number of times on system
- @SECURITY@ ;users current security level including conf. add.
- @SYSDATE@ ;host date in (mm-dd-yy format)
- @SYSTIME@ ;host system in in (hh:mm format)
- @TIMELEFT@ ;time remaining that call incl. all credits, etc.
- @TIMELIMIT@ ;time allowed from PWRD file
- @TIMEUSED@ ;minutes used since logon
- @UPBYTES@ ;total bytes uploaded - all calls
- @UPFILES@ ;total files uploaded - all calls
- @USER@ ;complete name of the caller (first & last - all caps)
-
-